package com.data.dao;

import java.util.List;

import com.base.dao.TemplateDao;
import com.data.entity.StateWeek;

public interface StateWeekDao extends TemplateDao<StateWeek, Integer>{
	/**
	 * 根据设备id，所属年份，周和设备状态查询设备状态周记录
	 * @param equId
	 * @param belongYear
	 * @param belongWeek
	 * @param stateType
	 * @return
	 */
	StateWeek getStateWeekByStateAndDate(int equId,int belongYear,int belongWeek,String stateType);
	
	/**
	 * 根据设备id，所属年份，开始周，结束周，设备状态，查询区间内的记录
	 * @param equId
	 * @param stateType
	 * @param belongYear
	 * @param startWeek
	 * @param endWeek
	 * @return
	 */
	List<StateWeek> getStateWeekByStateAndDates(int equId,String stateType,int belongYear,int startWeek,int endWeek);
	
	/**
	 * 获取指定年份下，从开始周到结束周的指定状态的累积工作时长
	 * ps:如果求总工作时长，则stateType为空; 总工作时长表示非停机的所有持续状态之和
	 * @param equId
	 * @param belongYear
	 * @param startWeek
	 * @param endWeek
	 * @return
	 */
	StateWeek getdurationByStateAndDate (int equId,int belongYear,int startWeek,int endWeek,String stateType);
	
	//根据时间区间内找到所有不同的类型
	List<StateWeek> getDistinctType(int equId,int belongYear,int startWeek,int endWeek);

}
